library(plotly)
## Loading required package: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
df <- read.csv("Properties_philly_Kraggle_v2.csv")

Sys.setlocale(category = "LC_TIME", locale="en_GB.UTF-8")
## [1] "en_GB.UTF-8"
df %>%
  na.omit() %>% 
  mutate(saleYear = substr(Sale.Date,(nchar(Sale.Date)+1)-4,nchar(Sale.Date))) %>% 
  group_by(Postal.Code) %>% 
  plot_ly(x = ~Avg.Walk.Transit.score,
          y = ~School.Score,
          symbol = ~PropType,
          frame = ~Postal.Code,
          type = "scatter",
          mode = "markers",
          text = ~paste("Average Walk Transit Score: ",Avg.Walk.Transit.score,"<br>School score: ",School.Score),
          hoverinfo = "text") %>% 
  animation_slider(
    currentvalue = list(prefix = "Postal code: ", font = list(color="purple"))
  ) %>% 
  layout(title = "Plot of comparison of average walk transit score and school score",
         xaxis = list(title = "Average walk transit score"), 
         yaxis = list(title = "School score"),
         legend = list(x = 1,
                       y = 0.8,
                       title = list(text = "Property type:"))
         )
## Warning in p$x$data[firstFrame] <- p$x$frames[[1]]$data: number of items to
## replace is not a multiple of replacement length